from openai import OpenAI
import os
from src.utils import get_logger
from src.utils import timer
logger = get_logger(__name__)
from .prompt import chat_system_prompt, user_prompt


@timer
def get_response(user_input, system_prompt=chat_system_prompt):
    client = OpenAI(
        api_key=os.getenv("DASHSCOPE_API_KEY"),  # 如果您没有配置环境变量，请用百炼API Key将本行替换为：api_key="sk-xxx"
        base_url=os.getenv("DASHSCOPE_BASE_URL"),  # 填写DashScope SDK的base_url
    )
    completion = client.chat.completions.create(
        # 使用qwen-plus耗时1.8s,使用qwen-turbo模型耗时1.2s
        model="qwen-plus",  
        messages=[{'role': 'system', 'content': system_prompt},
                  {'role': 'user', 'content': user_input}]
        )
    response = completion.choices[0].message.content
    logger.info(f"chat_llm模型回复: \n{response}")
    return response

if __name__ == '__main__':
    user_input = """
    历史人物:{"Ann": "橙红色头发扎成马尾辫；紫色上衣搭配蓝色背带裤"}
    1. **画面核心内容**: 小女孩站在门口旁边，似乎正在敲门并询问“Ann in?”（安在里面吗？）

2. **人物主体分析**:
    - **主题识别:** 年轻的女孩角色。
    - **关键特征:** 橙红色头发扎成马尾辫；身穿蓝色背带裤搭配紫色上衣及粉色鞋子；左手扶着木制圆柱形大门边缘，右手抬起准备敲门的动作。
    - **历史关联:** 在前一帧中未见此女性形象出现在其他地方。

3. **场景环境**: 单纯的画面风格描绘了一个室内空间的一部分——一个橙色墙壁旁的小洞口处有一个棕色木质圆形门框作为入口通道。没有明显的外部迹象表明这是室内外结合的空间布局或其他特定地点设定如公园或者家中某个房间的具体位置。

4. **画面文字**: “Ann in？”字幕位于屏幕底部中央偏左区域，在动画片的教学环节里通常用于引导孩子们学习新词汇或是进行互动问答游戏来加深记忆效果。“in”这个词可能被用来教授孩子关于方位词的知识，“is it...? ”句式则可以鼓励他们练习一般疑问句的回答模式训练口语表达能力。
    """
    get_response(user_input)